<?php

function comandos_form($esquerda = null,$direita = null) {
	/*$t = '<table cellspacing="0" width="100%" class="action_form">
      <tr height="17">';
	if($esquerda) {
		$t .=
	  '<td align="left" width="150px">
        '.$esquerda.'
        </td>';
	}
	$t.= '<td>&nbsp;</td>';
	if($direita) {
		$t .= '<td align="right" width="150px">
          '.$direita.'
        </td>';
	}
	$t.= '</tr>
  </table>';
	echo $t;*/
	$t = '<div class="form-actions">';
	if($esquerda)
		$t.= $esquerda;
		
	if($direita){
		$t.= '&nbsp;'.$direita;
	}
	
	$t.= '</div>';
	echo $t;
}

function form_error($campo,$htmlAntes='',$htmlDepois='')
{
	$campo_for_sf = str_replace(array('[', ']'), array('{', '}'), $campo);
  	$campo = str_replace(array('{', '}'), array('[', ']'), $campo);
  	
	$request = sfContext::getInstance()->getRequest();
	$style = $request->hasError($campo_for_sf) ? '' : 'display:none;';
	$error = $request->getError($campo_for_sf);
	

	if($error)
	{
		if($request->getParameterHolder()->has('errosMostrados')) {
			$errosMostrados = $request->getParameterHolder()->get('errosMostrados');
		}
		else {
			$errosMostrados = array();
		}
		$errosMostrados[] = $campo_for_sf;

		$request->getParameterHolder()->set('errosMostrados',$errosMostrados);
		return $htmlAntes.content_tag('span', $error, array('class'=>'mensagem_erro_form')).$htmlDepois."\n";
	}
	return '';
}

function form_field_class($campo) {
	$request = sfContext::getInstance()->getRequest();
	return $request->hasError($campo) ? 'titulo_campo_texto_erro' : 'titulo_campo_texto';
}

function preenche_mensagem_flash() {
	$request = sfContext::getInstance()->getRequest();
	if($request->hasErrors()) {
		$errosMostrados = $request->getParameterHolder()->get('errosMostrados',array());
		$msg_erro = '';
		foreach($request->getErrors() as $campo=>$erro) {
			if(!in_array($campo,$errosMostrados)) {
				$msg_erro .=  "Erro não mostrado: ".$campo.' :: '.$erro.'.';
			}
		}
		if($request->getParameterHolder()->has('errosMostrados')) {
			$msg_erro .= 'Por favor corrija os erros indicados.';
		}
		sfContext::getInstance()->getUser()->setFlash('erro', $msg_erro, false);
	}
}

/**
 * 
 * Transforma o status/situação de acordo com a sigla informada
 * @param string|integer $strSigla
 * @param string $strGender
 */
function traduzStatus( $strSigla, $strGender = 'M' )
{
	switch ( strtoupper( $strSigla ) )
	{
		case 'S':
		case 'A':
		case '1':
			return 'Ativ'. ( ( $strGender == 'M' ) ? 'o' : 'a' );
			
		case 'N':
		case '0':
		case 'I':
			return 'Inativ'. ( ( $strGender == 'M' ) ? 'o' : 'a' );
			
		case 'E':
			return 'Excluíd'. ( ( $strGender == 'M' ) ? 'o' : 'a' );
		
		
	}
	
	return '';
}